package com.qf.mprefer.utils;

import java.util.HashMap;

/**
 * 封装项目返回的json数据
 */
public class R extends HashMap {

    public R() {
        // code 默认 为 10000 ,代表成功
        put("code",10000);
        // msg 默认为 success
        put("msg","success");
    }


    // 代表成功的静态方法
    public static R ok(){
        return new R();
    }

    // 重载的 ok 方法，提供一个成功的消息字符串
    public static R ok(String msg){
        final R r = new R();
        r.put("msg",msg);
        return r;
    }

    /**
     * 重载ok
     * @param code 成功码
     * @param msg 成功消息
     * @return
     */
    public static R ok(Integer code,String msg){
        final R r = new R();
        r.put("code",code);
        r.put("msg",msg);
        return r;
    }

    /**
     * 失败消息封装
     * @return
     */
    public static R error(){
        final R r = new R();
        r.put("code",500);
        r.put("msg","服务器端有问题");
        return r;
    }

    /**
     * 重载error
     * @param msg 错误消息
     * @return
     */
    public static R error(String msg){
        final R r = new R();
        r.put("code",500);
        r.put("msg",msg);
        return r;
    }


    /**
     * 重载 error
     * @param code 错误码
     * @param msg  错误消息
     * @return
     */
    public static R error(Integer code,String msg){
        final R r = new R();
        r.put("code",code);
        r.put("msg",msg);
        return r;
    }

    @Override
    public R put(Object key, Object value) {
        super.put(key, value);
        return this;
    }


    public static void main(String[] args) {
        final R ok = R.ok();
        ok.put("menuList","abc").put("key1","value1").put("key2",2);
        System.out.println(ok);
    }
}
